package com.hacoc.countdown.bmo;

import java.sql.Date;
import java.util.List;

import com.hacoc.common.BaseException;
import com.hacoc.countdown.model.Advice;
import com.hacoc.countdown.model.CountDown;
import com.hacoc.countdown.model.HolidayType;
import com.hacoc.countdown.model.TagType;
import com.hacoc.countdown.model.UserInfo;

public interface CountDownManager {
	public CountDown[] findCountDown() throws Exception;
	public CountDown[] findCountDown(String filter,String orderBy,
			final int start,final int end) throws BaseException;	
	public CountDown[] findCountDownByHolidayTypeId(String holidayTypeId) throws BaseException;
	public CountDown[] findCountDownByTitle(String title) throws BaseException;
	public CountDown findCountDownByCountDownId(String countDownId) throws BaseException;
	public int updateCountDownState(String countDownId, String stateId) throws BaseException;
	public int updateCountDownTops(String countDownId) throws BaseException;
	public String insertCountDown(CountDown countDown, String userId) throws BaseException;
	public int deleteCountDown(String countDownId, String userId) throws BaseException;
	
	public CountDown[] findMyCountDown(String userId) throws BaseException;
	
	public UserInfo[] findUserInfo() throws BaseException;
	public UserInfo findUserInfoByUserId(String userId) throws BaseException;
	public String insertUserInfo(UserInfo userInfo) throws BaseException;
	public int deleteUserInfo(String userId) throws BaseException;
	
	public HolidayType[] findHolidayType() throws BaseException;
	
	public Advice[] findAdvice(String filter,String orderBy,
			final int start,final int end) throws BaseException;
	public String insertAdvice(Advice advice) throws BaseException;
	
	public CountDown[] findFavorite(String userId) throws BaseException;
	public CountDown findFavoriteByCountDownId(String countDownId) throws BaseException;
	public int insertFavorite(String countDownId,String userId,
			Date collectDate,String remarks) throws BaseException;
	public int deleteFavorite(String countDownId,String userId) throws BaseException;
	
	public List findTagTypeTop(int tops) throws BaseException;
	public String insertTagType(TagType tt) throws BaseException;
	public int updateTagType(String tagId)  throws BaseException;
}
